/**
 * com.dingjian.base.dao.BaseDao.java
 * 2012-6-19
 */
package com.dingjian.base.dao;

import java.util.List;

import com.dingjian.base.CoreEntity;



/**
 * Dao顶层接口
 * @author FengMy
 * @since 2012-6-19下午05:03:10
 */
public interface BaseDao{
	/**
	 * 持久化新实体
	 * @param entity
	 */
	<T> void addEntity(T entity);
	
	/**
	 * 持久化新实体
	 * @param entity
	 */
	<T> void addBatch(List<T> entities);
	
	/**
	 * 更新实体
	 * @param entity
	 */
	<T> void updateEntity(T entity);
	
	/**
	 * 更新实体
	 * @param entity
	 */
	<T> void updateBatch(List<T> entities);
	
	/**
	 * 删除实体
	 * @param entity
	 */
	<T> void deleteEntity(T entity);
	
	/**
	 * 删除实体
	 * @param entity
	 */
	<T> void deleteBatch(List<String> ids);
	
	/**
	 * 按id删除实体
	 * @param id
	 */
	void deleteById(String id);
	/**
	 * 根据id获取实体
	 * @param id
	 * @return
	 */
	<T extends CoreEntity> T getEntityById(String id);
}
